package top.riske.gen3d.service;

import com.tencentcloudapi.common.exception.TencentCloudSDKException;
import jakarta.servlet.http.HttpServletRequest;
import top.riske.gen3d.DTO.HunyuanInputMultiViewImagesDto;
import top.riske.gen3d.DTO.HunyuanInputParamDto;
import top.riske.gen3d.http.response.Hunyuan3DJobResponse;
import top.riske.gen3d.entity.Hunyuan3DJob;

import java.util.List;

/**
 * 腾讯3D模型生成服务
 */
public interface Hunyuan3DService {

    /**
     * 提交任务, 文本生成3D模型
     * @param inputParam 生成输入参数
     * @param accountId 账号ID
     * @return 任务ID等
     */
    Hunyuan3DJob submitJobForText(HunyuanInputParamDto inputParam, Long accountId) throws TencentCloudSDKException;

    /**
     * 提交任务, 图片生成3D模型
     * @param inputParam 生成输入参数
     * @param accountId 账号ID
     * @return 任务ID等
     */
    Hunyuan3DJob submitJobForImage(HunyuanInputParamDto inputParam, Long accountId) throws TencentCloudSDKException;


    /**
     * 查询任务完成情况
     * @param id 任务主键ID
     * @return 任务结果
     */
    Hunyuan3DJob queryJob(Long id, Long accountId, HttpServletRequest request) throws TencentCloudSDKException;

    /**
     * 重新提交生成任务
     * @param id
     * @param accountId
     * @return
     */
    Hunyuan3DJob submitJobForRetry(Long id, Long accountId) throws TencentCloudSDKException;

}
